改造 cmd 成 shell

Windows 下的 cmd 不太好用,以下将其增强部分 *nix 的 shell 功能

摘要

将 cmd 改造成 shell,关键点:

  • Gow
  • Clink

Gow

Gow 是 Cygwin 的轻量级替代品,封装了 130 多个开源工具和 *nix 命令(编译成 exe ),常用的有:

  • Shell : bash , zsh
  • 压缩工具: gzip, zip, bzip2, compress
  • SSH: putty, psftp, pscp, pageant, plink
  • 下载工具 : curl, wget
  • FTP: NcFTP
  • 编辑器 :vim
  • 字处理 : grep, agrep, less, cat, tail, head
  • 文件工具: mv, cp, du, ls, pwd, rmdir, whereis
  • 开发工具: make, diff, diff3, sleep, cvs, dos2unix, unix2dos

(上述列表来自oschina 的 Gow 说明
下载并安装即可,环境变量会自动设置,并且可往/bin添加新的exe

Clink 是 cmd 增强工具,功能强大:

Tab补全

  • 路径补全
  • PATH 下的可执行文件
  • 环境变量

更关键的是补全形式为显示列表,而非 cmd 和 PowerShell 里的逐个蹦
列表补全效果示意图

GNU readline

GNU readline 让 cmd 拥有 bash 的编辑和定制的能力:

  • Ctrl-R, Ctrl-S (逆序)搜索历史命令
  • Ctrl-A, Ctrl-S 到行首/尾
  • Ctrl-U, Ctrl-K 删除到行首/尾
  • Ctrl-L 清屏
  • ……

其他

  • 跨会话(Sessions)的保存
  • 更多快捷键
    • Ctrl-V 复制
    • Ctrl-Z 撤销 /Undo
    • (Alt-H 查看更多快捷键……)
  • ……

设置 cmd 的 autorun 仅需:

1
clink autorun -i

已知Bug

  • *nix 下 ls 默认 ascii 编码,而 Windows 文件名编码为 GBK(cp936),固 ls 时中文不显示,建议可补充使用 dir

小结

使用 Gow 和 Clink ,使得 cmd 最薄弱的命令、补全和编辑功能得到补充。


参考并特别感谢: